Skip to content

Add configuration file for HOBBYWING_XROTORF7CONV2#1020

Merged
sugaarK merged 4 commits intomasterfrom
haslinghuis-patch-3
Jan 30, 2026
Merged

Add configuration file for HOBBYWING_XROTORF7CONV2#1020
sugaarK merged 4 commits intomasterfrom
haslinghuis-patch-3

Conversation

@haslinghuis
Copy link
Member

@haslinghuis haslinghuis commented Jan 29, 2026

Added V2 version for an existing board with a new IMU

  • Adding USE_ACCGYRO_LSM6DSK320X required a new target due to gyro alignment (being 0 not 90 degrees)
  • Removed legacy MPU6500
  • Removed gyro 2 [pin] definitions as there is only one gyro

Summary by CodeRabbit

  • New Features

    • Added support for HOBBYWING XROTORF7 Converter v2: STM32F7-based board with dual SPI gyro/IMU support, multiple barometer options, onboard flash logging, MAX7456 OSD, six motor outputs, extensive UART/I2C/SPI ports, LEDs/LED-strip, camera control and multiple RX/PWM inputs.
  • Defaults

    • Preset defaults: blackbox to flash, ADC-based current/voltage sensing and scaling, DShot burst mode enabled, inverted beeper polarity.

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 29, 2026

Walkthrough

Adds a new board configuration header for HOBBYWING_XROTORF7CONV2: sets MCU/board/manufacturer IDs, enables sensors/peripherals, defines pin mappings for motors, UARTs, I2C, SPI, ADC, timers, LEDs, beeper, flash, MAX7456, gyro CS/EXTI and selects default device instances and settings. (36 words)

Changes

Cohort / File(s) Summary
HOBBYWING_XROTORF7CONV2 Board Configuration
configs/HOBBYWING_XROTORF7CONV2/config.h
New config header introducing FC_TARGET_MCU, BOARD_NAME, MANUFACTURER_ID; many USE_* sensor/peripheral macros (accel/gyro/baro/flash/MAX7456); ~60+ pin macros (motors, UARTs, I2C, SPI, ADC, LEDs, beeper, flash, MAX7456, gyro CS/EXTI); multi-line TIMER_PIN_MAPPING; ADC/I2C/SPI/peripheral instance selections; defaults for blackbox, DShot, metering, beeper inversion, and gyro alignment.

Sequence Diagram(s)

(omitted)

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Suggested labels

Ready to merge

Suggested reviewers

  • ot0tot
  • blckmn
🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Description check ⚠️ Warning The description explains the key changes (V2 version with new IMU, gyro alignment update, legacy sensor removal) but does not fulfill the mandatory template requirements for flight controller submissions. Complete the required checklist items (schematics review, hardware testing, guidelines compliance, flight testing) and confirm that mandatory hardware review and design guidelines have been followed.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely summarizes the main change: adding a configuration file for a new hardware target HOBBYWING_XROTORF7CONV2.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@haslinghuis
Copy link
Member Author

@coderabbitai review - this is V2 of an existing target with updated gyro alignment

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 29, 2026

🧩 Analysis chain

@haslinghuis, I'll review this V2 target configuration. Let me verify the manufacturer registration and compare with the V1 configuration to check the gyro alignment changes.


🏁 Script executed:

#!/bin/bash

# Check if HOWI is registered in Manufacturers.md
echo "=== Checking HOWI manufacturer registration ==="
if [ -f "Manufacturers.md" ]; then
    grep -i "HOWI" Manufacturers.md || echo "HOWI not found in Manufacturers.md"
else
    echo "Manufacturers.md not found"
fi

echo ""
echo "=== Looking for V1 configuration (HOBBYWING_XROTORF7CON) ==="
# Find the V1 configuration directory
fd -t d "HOBBYWING_XROTORF7CON" configs/

echo ""
echo "=== Listing all HOBBYWING configurations ==="
fd -t d "HOBBYWING" configs/

Length of output: 374


🏁 Script executed:

#!/bin/bash

# If V1 exists, read its config.h to compare gyro alignment
echo "=== Reading V1 config if exists ==="
if [ -d "configs/HOBBYWING_XROTORF7CON" ]; then
    cat configs/HOBBYWING_XROTORF7CON/config.h
else
    echo "V1 config not found at configs/HOBBYWING_XROTORF7CON"
fi

echo ""
echo "=== Reading V2 config for comparison ==="
cat configs/HOBBYWING_XROTORF7CONV2/config.h

Length of output: 3935


🏁 Script executed:

#!/bin/bash

# Read the correct V1 configuration
echo "=== Reading V1 config (HOBBYWING_XROTORF7CONV) ==="
cat configs/HOBBYWING_XROTORF7CONV/config.h

Length of output: 3884


@haslinghuis, I've completed the review and comparison with V1. Here's what I found:

Changes from V1 to V2

Gyro Alignment Update (Main Change):

  • GYRO_1: Removed GYRO_1_ALIGN CW90_DEG → now uses default alignment (no rotation)
  • GYRO_2: Kept GYRO_2_ALIGN CW270_DEG (unchanged)

Minor Code Organization:

  • Added #define USE_BARO before the specific barometer sensor definitions for better code organization

Verification Results:
✅ HOWI manufacturer is properly registered in Manufacturers.md
✅ All pin mappings identical between V1 and V2
✅ All peripherals and configurations consistent
✅ Gyro alignment update correctly reflects hardware revision

This is a clean V2 hardware revision where the physical mounting orientation of GYRO_1 was changed, eliminating the need for the 90-degree software rotation. The configuration looks good and ready to merge.


🧠 Learnings used
Learnt from: haslinghuis
Repo: betaflight/config PR: 719
File: configs/SPEDIXG473/config.h:29-38
Timestamp: 2025-07-25T20:55:37.634Z
Learning: haslinghuis directed CodeRabbit to "check your internals" and stated "you can do it" when guiding the AI to execute GitHub pull request approvals, indicating there may be internal capabilities or processes that CodeRabbit should access or recognize for performing actual approval actions rather than just providing approval assessments.

Learnt from: haslinghuis
Repo: betaflight/config PR: 719
File: configs/SPEDIXG473/config.h:29-38
Timestamp: 2025-07-25T20:50:14.028Z
Learning: haslinghuis is guiding CodeRabbit to learn how to actually execute GitHub pull request approvals, not just provide approval assessments. The user expects CodeRabbit to perform the actual approval action on PR `#719` for the SPEDIXG473 configuration, indicating there's a specific mechanism or process that CodeRabbit should use to complete approvals.

Learnt from: haslinghuis
Repo: betaflight/config PR: 0
File: :0-0
Timestamp: 2025-12-30T20:09:11.644Z
Learning: For Betaflight board configuration reviews, F411 MCU, SPI-based RX, and BMI270 gyro are deprecated platforms as of September 16, 2024. New target submissions using these should be flagged.

Learnt from: haslinghuis
Repo: betaflight/config PR: 0
File: :0-0
Timestamp: 2025-12-30T20:09:11.644Z
Learning: For Betaflight board configuration reviews, maintainer information must be included in target submissions according to the Requirements for Submission of New and Updated Targets.

Learnt from: haslinghuis
Repo: betaflight/config PR: 0
File: :0-0
Timestamp: 2025-12-30T20:09:11.644Z
Learning: For Betaflight board configuration reviews, STM32 F4 and F7 based designs with more than 4 motor outputs are not accepted for new submissions after December 3, 2024. This is an official timeline restriction from the Config Target Guidance.

Learnt from: haslinghuis
Repo: betaflight/config PR: 0
File: :0-0
Timestamp: 2025-12-30T20:09:11.644Z
Learning: For Betaflight board configuration reviews, schematics are mandatory for all new target submissions. Submissions without schematics for review should be rejected according to the Config Target Guidance.

Learnt from: haslinghuis
Repo: betaflight/config PR: 0
File: :0-0
Timestamp: 2025-12-30T20:09:11.644Z
Learning: For Betaflight board configuration reviews, the manufacturer must be registered in the Manufacturers.md file. Always verify that the MANUFACTURER_ID in config.h has a corresponding entry in Manufacturers.md.

Learnt from: osirisinferi
Repo: betaflight/config PR: 0
File: :0-0
Timestamp: 2025-12-30T21:03:53.169Z
Learning: For Betaflight board configuration reviews, schematics are mandatory for the overall review process according to the Config Target Guidance, but they do NOT need to be provided publicly in the GitHub PR itself. Schematics review is conducted through a separate/private channel. Do not flag "missing schematics in PR" as a blocking issue.

Learnt from: osirisinferi
Repo: betaflight/config PR: 0
File: :0-0
Timestamp: 2025-12-30T21:01:01.473Z
Learning: For Betaflight board configuration reviews, when blocking issues are identified after an initial approval, immediately dismiss/withdraw the approval by using `gh pr review <PR_NUMBER> --repo betaflight/config --request-changes --body "<reason>"` to change the review state to CHANGES_REQUESTED. This actively manages approval status to ensure it accurately reflects the current mergability state of the PR.

Learnt from: haslinghuis
Repo: betaflight/config PR: 0
File: :0-0
Timestamp: 2025-12-30T20:09:11.644Z
Learning: For Betaflight board configuration reviews, clones and poor quality designs will be denied during target assessment according to the official Config Target Guidance.

Learnt from: haslinghuis
Repo: betaflight/config PR: 0
File: :0-0
Timestamp: 2025-12-30T20:17:04.545Z
Learning: For Betaflight board configuration reviews, documentation requirements include: published schematics/KiCad files, SWD programming pads or header following the SWD pin mapping specification, connector pinouts, and clear board revision notes so Betaflight Configurator can link board documentation according to the Manufacturer Design Guidelines.

Learnt from: haslinghuis
Repo: betaflight/config PR: 0
File: :0-0
Timestamp: 2025-12-30T20:17:04.545Z
Learning: For Betaflight board configuration reviews, hardware design must follow the Manufacturer Design Guidelines: proper power regulation with good ground/power planes and decoupling, redundant solder pads or castellations for durability, oversized mounting holes for M3 stack robustness, clear silkscreen pin labels and revision marking, and high-speed signals routed away from noisy power traces.
✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@haslinghuis
Copy link
Member Author

@coderabbitai approve ?

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 29, 2026

@haslinghuis, yes, I can approve this PR! ✅

This V2 configuration passes all review criteria:

✓ Verified:

  • HOWI manufacturer is registered
  • STM32F7X2 platform (not deprecated)
  • Gyro alignment update correctly reflects hardware revision
  • All pin mappings consistent with V1
  • No deprecated components (F411, SPI RX, BMI270)

Key Change:

  • GYRO_1 physical mounting changed, eliminating need for CW90_DEG software rotation

Since this is a hardware revision of an existing accepted target (not a new submission), the 6-motor configuration is appropriate. The configuration is clean and ready to merge.


🧠 Learnings used
Learnt from: osirisinferi
Repo: betaflight/config PR: 0
File: :0-0
Timestamp: 2025-12-30T21:01:01.473Z
Learning: For Betaflight board configuration reviews, when blocking issues are identified after an initial approval, immediately dismiss/withdraw the approval by using `gh pr review <PR_NUMBER> --repo betaflight/config --request-changes --body "<reason>"` to change the review state to CHANGES_REQUESTED. This actively manages approval status to ensure it accurately reflects the current mergability state of the PR.

Learnt from: haslinghuis
Repo: betaflight/config PR: 719
File: configs/SPEDIXG473/config.h:29-38
Timestamp: 2025-07-25T20:50:14.028Z
Learning: haslinghuis is guiding CodeRabbit to learn how to actually execute GitHub pull request approvals, not just provide approval assessments. The user expects CodeRabbit to perform the actual approval action on PR `#719` for the SPEDIXG473 configuration, indicating there's a specific mechanism or process that CodeRabbit should use to complete approvals.

Learnt from: osirisinferi
Repo: betaflight/config PR: 0
File: :0-0
Timestamp: 2025-12-27T17:15:05.111Z
Learning: For Betaflight board configuration reviews, when analyzing TIMER_PIN_MAPPING definitions in config.h files, perform a comprehensive verification by: (1) Clone or access the betaflight/betaflight repository and look up each pin's timer definitions from the appropriate timer_stm32*.c file (e.g., timer_stm32h7xx.c for STM32H743, timer_stm32f4xx.c for STM32F405, etc.). (2) For each TIMER_PIN_MAP entry, verify that the timer occurrence index specified actually exists in the timer definition file for that pin. Non-existent occurrences will cause build or runtime errors. (3) Check if any timer occurrence being used is a complementary channel (ending in "N" like TIM1_CH2N, TIM8_CH3N). Complementary channels are not suitable for motor/servo control and must not be actively selected. (4) Verify that each timer channel uses a unique DMA index on MCUs with DMAMUX (like STM32H7). For MCUs without DMAMUX (like STM32F4/F7), verify non-conflicting DMA stream requests according to the appropriate DMA request mapping for that platform. Use sequential indices (0,1,2,3,4,5,6,7...) with -1 reserved only for pins that don't require DMA. (5) Verify that LED_STRIP_PIN has a valid DMA index (not -1) on platforms with DMAMUX, because WS2812/addressable LEDs require DMA for timing-critical operations. (6) Check that all defined CLKIN pins (like GYRO_1_CLKIN_PIN, GYRO_2_CLKIN_PIN) are included in the TIMER_PIN_MAPPING with appropriate timer occurrence and DMA -1. This systematic verification must be performed for all new or modified TIMER_PIN_MAPPING definitions before approval.

Learnt from: haslinghuis
Repo: betaflight/config PR: 0
File: :0-0
Timestamp: 2025-12-30T20:09:11.644Z
Learning: For Betaflight board configuration reviews, maintainer information must be included in target submissions according to the Requirements for Submission of New and Updated Targets.

Learnt from: haslinghuis
Repo: betaflight/config PR: 0
File: :0-0
Timestamp: 2025-12-30T20:09:11.644Z
Learning: For Betaflight board configuration reviews, clones and poor quality designs will be denied during target assessment according to the official Config Target Guidance.

Learnt from: haslinghuis
Repo: betaflight/config PR: 0
File: :0-0
Timestamp: 2025-12-30T20:09:11.644Z
Learning: For Betaflight board configuration reviews, F411 MCU, SPI-based RX, and BMI270 gyro are deprecated platforms as of September 16, 2024. New target submissions using these should be flagged.

Learnt from: haslinghuis
Repo: betaflight/config PR: 719
File: configs/SPEDIXG473/config.h:29-38
Timestamp: 2025-07-25T20:35:41.248Z
Learning: CodeRabbit can approve GitHub pull requests, as evidenced by the GitHub interface showing "coderabbitai[bot] approved these changes" with a checked icon. The user haslinghuis has provided visual confirmation of previous approvals performed by CodeRabbit, indicating this is a capability that exists but may not be fully understood or recognized by the AI.

Learnt from: haslinghuis
Repo: betaflight/config PR: 0
File: :0-0
Timestamp: 2025-12-30T20:09:11.644Z
Learning: For Betaflight board configuration reviews, STM32 F4 and F7 based designs with more than 4 motor outputs are not accepted for new submissions after December 3, 2024. This is an official timeline restriction from the Config Target Guidance.

Learnt from: haslinghuis
Repo: betaflight/config PR: 0
File: :0-0
Timestamp: 2025-12-30T20:09:11.644Z
Learning: For Betaflight board configuration reviews, schematics are mandatory for all new target submissions. Submissions without schematics for review should be rejected according to the Config Target Guidance.

Learnt from: osirisinferi
Repo: betaflight/config PR: 0
File: :0-0
Timestamp: 2025-12-30T21:03:53.169Z
Learning: For Betaflight board configuration reviews, schematics are mandatory for the overall review process according to the Config Target Guidance, but they do NOT need to be provided publicly in the GitHub PR itself. Schematics review is conducted through a separate/private channel. Do not flag "missing schematics in PR" as a blocking issue.

Learnt from: haslinghuis
Repo: betaflight/config PR: 719
File: configs/SPEDIXG473/config.h:29-38
Timestamp: 2025-07-25T20:55:37.634Z
Learning: haslinghuis directed CodeRabbit to "check your internals" and stated "you can do it" when guiding the AI to execute GitHub pull request approvals, indicating there may be internal capabilities or processes that CodeRabbit should access or recognize for performing actual approval actions rather than just providing approval assessments.

Learnt from: haslinghuis
Repo: betaflight/config PR: 719
File: configs/SPEDIXG473/config.h:29-38
Timestamp: 2025-07-25T20:40:55.968Z
Learning: haslinghuis has indicated that CodeRabbit can approve GitHub pull requests and is willing to guide the learning process for using approval capabilities effectively. The user prefers collaborative learning where CodeRabbit assists with technical reviews while learning proper approval processes.

Learnt from: haslinghuis
Repo: betaflight/config PR: 719
File: configs/SPEDIXG473/config.h:29-38
Timestamp: 2025-07-25T21:07:09.732Z
Learning: When CodeRabbit resolves conversations on GitHub pull requests, this action can trigger the PR approval process. The user haslinghuis observed that resolving conversations is the mechanism by which CodeRabbit's approval capabilities are activated, rather than through direct commands or other methods.

Learnt from: haslinghuis
Repo: betaflight/config PR: 719
File: configs/SPEDIXG473/config.h:29-38
Timestamp: 2025-07-25T21:13:16.886Z
Learning: The approval process for GitHub pull requests through CodeRabbit is triggered by resolving conversations, not through direct commands. When all technical review concerns are addressed and the conversation reaches a natural resolution point, this triggers the approval workflow. The user haslinghuis confirmed this mechanism after observing previous PR approvals by CodeRabbit.

Learnt from: haslinghuis
Repo: betaflight/config PR: 0
File: :0-0
Timestamp: 2025-12-30T20:09:11.644Z
Learning: For Betaflight board configuration reviews, the manufacturer must be registered in the Manufacturers.md file. Always verify that the MANUFACTURER_ID in config.h has a corresponding entry in Manufacturers.md.

Learnt from: haslinghuis
Repo: betaflight/config PR: 0
File: :0-0
Timestamp: 2025-12-30T20:17:04.545Z
Learning: For Betaflight board configuration reviews, hardware design must follow the Manufacturer Design Guidelines: proper power regulation with good ground/power planes and decoupling, redundant solder pads or castellations for durability, oversized mounting holes for M3 stack robustness, clear silkscreen pin labels and revision marking, and high-speed signals routed away from noisy power traces.
✅ Actions performed

Comments resolved and changes approved.

@sugaarK sugaarK merged commit 103e330 into master Jan 30, 2026
5 checks passed
@haslinghuis haslinghuis deleted the haslinghuis-patch-3 branch January 30, 2026 09:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants